﻿<html DIR="LTR" xmlns:tool="http://www.microsoft.com/tooltip" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
  <head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=utf-8" />
    <META NAME="save" CONTENT="history" />
    <title>getColumns 方法 (SQLServerDatabaseMetaData)</title>
    
    <link rel="stylesheet" type="text/css" href="../local/Classic.css">
      
    </link>
    
    <script src="../local/script.js">
      
    </script><script src="../local/script_main.js">&amp;nbsp;</script>
  </head>
  <body>
    <!--Topic built:04/01/2010 05:03:28-->

    
    
    
    
    
    
    
    
    
    <div id="header">
      <table width="100%" id="topTable"><tr>
          <td align="left">
            <span id="headerBold">getColumns 方法 (SQLServerDatabaseMetaData)</span>
          </td>
          <td align="right">
            
          </td>
        </tr></table>
      
      
      
    </div>
    <div id="mainSection">
      
        
        
    <font color="DarkGray">
      
    </font>
    <p />
    
    <p />
  
        <div id="introductionSection" class="section">
    <p>检索指定目录中可用的表列的说明。</p>
  </div><h1 class="heading">语法</h1><div id="syntaxSection" class="section"><div class="sampleCode"><span codeLanguage="other"><pre>
public java.sql.ResultSet <b>getColumns</b>(java.lang.String <i>catalog</i>,
java.lang.String <i>schema</i>,
java.lang.String <i>table</i>,
java.lang.String <i>col</i>)</pre></span></div><h1 class="heading">参数</h1><div id="parametersSection" class="section" name="collapseableSection">
    <content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">
        <i>catalog</i>
      </p>
      <p xmlns="">包含目录名称的 <b>String</b>。</p>
      <p xmlns="">
        <i>schema</i>
      </p>
      <p xmlns="">包含架构名称模式的 <b>String</b>。</p>
      <p xmlns="">
        <i>table</i>
      </p>
      <p xmlns="">包含表名称模式的 <b>String</b>。</p>
      <p xmlns="">
        <i>col</i>
      </p>
      <p xmlns="">包含列名称模式的 <b>String</b>。</p>
    </content>
  </div></div><h1 class="heading">返回值</h1><div id="returnValueSection" class="section" name="collapseableSection">
    <content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns=""><a href="eaffcff1-286c-459f-83da-3150778480c9.htm">SQLServerResultSet</a> 对象。</p>
    </content>
  </div><h1 class="heading">异常</h1><div id="exceptionsSection" class="section" name="collapseableSection">
    <content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">
        <a href="af5ef257-7cf6-4db3-b1ee-07d22d82bef1.htm">SQLServerException</a>
      </p>
    </content>
  </div><h1 class="heading">备注</h1><div id="remarksSection" class="section" name="collapseableSection">
    <content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <p xmlns="">此 <b>getColumns</b> 方法由 java.sql.DatabaseMetaData 接口中的 <b>getColumns</b> 方法指定。</p>
      <p xmlns="">由 <b>getColumns</b> 方法返回的结果集将包含下列信息：</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              名称
            </th>
            <th>
              类型
            </th>
            <th>
              说明
            </th>
          </tr><tr>
          <td>
            <p>TABLE_CAT</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>目录名称。</p>
          </td>
        </tr><tr>
          <td>
            <p>TABLE_SCHEM</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>表架构的名称。</p>
          </td>
        </tr><tr>
          <td>
            <p>TABLE_NAME</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>表的名称。</p>
          </td>
        </tr><tr>
          <td>
            <p>COLUMN_NAME</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>列名称。</p>
          </td>
        </tr><tr>
          <td>
            <p>DATA_TYPE</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>来自 java.sql.Types 的 SQL 数据类型。</p>
          </td>
        </tr><tr>
          <td>
            <p>TYPE_NAME</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>数据类型的名称。</p>
          </td>
        </tr><tr>
          <td>
            <p>COLUMN_SIZE</p>
          </td>
          <td>
            <p>
              <b>int</b>
            </p>
          </td>
          <td>
            <p>列的精度。</p>
          </td>
        </tr><tr>
          <td>
            <p>BUFFER_LENGTH</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>数据的传输大小。</p>
          </td>
        </tr><tr>
          <td>
            <p>DECIMAL_DIGITS</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>列的小数位数。</p>
          </td>
        </tr><tr>
          <td>
            <p>NUM_PREC_RADIX</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>列的基数。</p>
          </td>
        </tr><tr>
          <td>
            <p>NULLABLE</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>指示列是否可以为 Null。可以是下列值之一：</p>
            <p>columnNoNulls (0)</p>
            <p>columnNullable (1)</p>
          </td>
        </tr><tr>
          <td>
            <p>REMARKS</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>与列关联的注释。</p>
            <div style="margin: .5em 1.5em .5em 1.5em"><b>注意：</b>
              对于此列，SQL Server 始终返回 Null。<p />
            </div>
          </td>
        </tr><tr>
          <td>
            <p>COLUMN_DEF</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>列的默认值。</p>
          </td>
        </tr><tr>
          <td>
            <p>SQL_DATA_TYPE</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>SQL 数据类型出现在描述符的 TYPE 字段中时的值。该列与 DATA_TYPE 列相同，datetime 和 SQL-92 interval 数据类型除外。该列始终返回值。</p>
          </td>
        </tr><tr>
          <td>
            <p>SQL_DATETIME_SUB</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>datetime 及 SQL-92 interval 数据类型的子类型代码。对于其他数据类型，该列返回 NULL。</p>
          </td>
        </tr><tr>
          <td>
            <p>CHAR_OCTET_LENGTH</p>
          </td>
          <td>
            <p>
              <b>int</b>
            </p>
          </td>
          <td>
            <p>列中的最大字节数。</p>
          </td>
        </tr><tr>
          <td>
            <p>ORDINAL_POSITION</p>
          </td>
          <td>
            <p>
              <b>int</b>
            </p>
          </td>
          <td>
            <p>列在表中的索引。</p>
          </td>
        </tr><tr>
          <td>
            <p>IS_NULLABLE</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>指示列是否允许 Null 值。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_IS_SPARSE</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>如果该列是稀疏列，它将具有值 VARIANT_TRUE；否则，为 VARIANT_FALSE。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_IS_COLUMN_SET</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>如果该列是稀疏 column_set 列，则它具有值 VARIANT_TRUE；否则，为 VARIANT_FALSE。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_IS_COMPUTED</p>
          </td>
          <td>
            <p>
              <b>smallint</b>
            </p>
          </td>
          <td>
            <p>指示 TABLE_TYPE 中的列是否为计算所得的列。</p>
          </td>
        </tr><tr>
          <td>
            <p>IS_AUTOINCREMENT</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>如果列是自动递增的，则为“是”。如果列不是自动递增的，则为“否”。如果驱动程序无法确定列是否为自动递增，则为 ""（空字符串）。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_UDT_CATALOG_NAME</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>包含用户定义类型 (UDT) 的目录名称。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_UDT_SCHEMA_NAME</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>包含用户定义类型 (UDT) 的架构名称。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_UDT_ASSEMBLY_TYPE_NAME</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>采用完全限定名称的用户定义类型 (UDT)。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_XML_SCHEMACOLLECTION_CATALOG_NAME</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>在其中定义 XML 架构集合名称的目录的名称。如果找不到目录名称，则此变量包含空字符串。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_XML_SCHEMACOLLECTION_SCHEMA_NAME</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>在其中定义 XML 架构集合名称的架构的名称。如果找不到架构名称，则为空字符串。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_XML_SCHEMACOLLECTION_NAME</p>
          </td>
          <td>
            <p>
              <b>String</b>
            </p>
          </td>
          <td>
            <p>XML 架构集合的名称。如果找不到名称，则为空字符串。</p>
          </td>
        </tr><tr>
          <td>
            <p>SS_DATA_TYPE</p>
          </td>
          <td>
            <p>
              <b>tinyint</b>
            </p>
          </td>
          <td>
            <p>扩展存储过程使用的 SQL Server 数据类型。</p>
            <p>
              <b>注意</b>   有关 SQL Server 返回的数据类型的详细信息，请参阅 SQL Server 联机丛书中的“数据类型 (Transact-SQL)”。</p>
          </td>
        </tr></table>
      <div style="margin: .5em 1.5em .5em 1.5em" xmlns=""><b>注意：</b>
        有关 <b>getColumns</b> 方法返回的数据的详细信息，请参阅 SQL Server 联机丛书中的“sp_columns (Transact-SQL)”。<p />
      </div>
      <p xmlns="">在 Microsoft SQL Server JDBC Driver 3.0 中，您将看到有别于以往 JDBC 驱动程序版本的以下行为更改：</p>
      <p xmlns="">DATA_TYPE 列具有以下更改：</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              
                SQL Server 数据类型
            </th>
            <th>
              返回 JDBC Driver 2.0 中的类型和关联数值常量
            </th>
            <th>
              返回 JDBC Driver 3.0 中的类型 
            </th>
          </tr><tr>
          <td>
            <p>大于 8 kB 的用户定义类型</p>
          </td>
          <td>
            <p>LONGVARBINARY (-4)</p>
          </td>
          <td>
            <p>VARBINARY (-3)</p>
          </td>
        </tr><tr>
          <td>
            <p>geography</p>
          </td>
          <td>
            <p>LONGVARBINARY (-4)</p>
          </td>
          <td>
            <p>VARBINARY (-3)</p>
          </td>
        </tr><tr>
          <td>
            <p>geometry</p>
          </td>
          <td>
            <p>LONGVARBINARY (-4)</p>
          </td>
          <td>
            <p>VARBINARY (-3)</p>
          </td>
        </tr><tr>
          <td>
            <p>varbinary(max)</p>
          </td>
          <td>
            <p>LONGVARBINARY (-4)</p>
          </td>
          <td>
            <p>VARBINARY (-3)</p>
          </td>
        </tr><tr>
          <td>
            <p>nvarchar(max)</p>
          </td>
          <td>
            <p>LONGVARCHAR (-1) 或 LONGNVARCHAR (JDBC 4) (-16)</p>
          </td>
          <td>
            <p>VARCHAR (12) 或 NVARCHAR (JDBC 4) (-9)</p>
          </td>
        </tr><tr>
          <td>
            <p>varchar(max)</p>
          </td>
          <td>
            <p>LONGVARCHAR (-1)</p>
          </td>
          <td>
            <p>VARCHAR (12)</p>
          </td>
        </tr><tr>
          <td>
            <p>time</p>
          </td>
          <td>
            <p>VARCHAR (12) 或 NVARCHAR (JDBC 4) (-9)</p>
          </td>
          <td>
            <p>TIME (-154)</p>
          </td>
        </tr><tr>
          <td>
            <p>date</p>
          </td>
          <td>
            <p>VARCHAR (12) 或 NVARCHAR (JDBC 4) (-9)</p>
          </td>
          <td>
            <p>DATE (91)</p>
          </td>
        </tr><tr>
          <td>
            <p>datetime2</p>
          </td>
          <td>
            <p>VARCHAR (12) 或 NVARCHAR (JDBC 4) (-9)</p>
          </td>
          <td>
            <p>TIMESTAMP (93)</p>
          </td>
        </tr><tr>
          <td>
            <p>datetimeoffset</p>
          </td>
          <td>
            <p>VARCHAR (12) 或 NVARCHAR (JDBC 4) (-9)</p>
          </td>
          <td>
            <p>microsoft.sql.Types.DATETIMEOFFSET  (-155)</p>
          </td>
        </tr></table>
      <p xmlns="">COLUMN_SIZE 列具有以下更改：</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              
                SQL Server 数据类型
            </th>
            <th>
              返回 JDBC Driver 2.0 中的类型 
            </th>
            <th>
              返回 JDBC Driver 3.0 中的类型 
            </th>
          </tr><tr>
          <td>
            <p>nvarchar(max)</p>
          </td>
          <td>
            <p>1073741823</p>
          </td>
          <td>
            <p>2147483647（数据库元数据）</p>
          </td>
        </tr><tr>
          <td>
            <p>xml</p>
          </td>
          <td>
            <p>1073741823</p>
          </td>
          <td>
            <p>2147483647（数据库元数据）</p>
          </td>
        </tr><tr>
          <td>
            <p>小于或等于 8 kB 的用户定义类型</p>
          </td>
          <td>
            <p>8 kB（结果集和参数元数据）</p>
          </td>
          <td>
            <p>存储过程返回的实际大小。</p>
          </td>
        </tr><tr>
          <td>
            <p>time</p>
          </td>
          <td>
            <p> </p>
          </td>
          <td>
            <p>类型的字符串表示形式的字符长度，假定精度允许的最大值为秒的小数形式。</p>
          </td>
        </tr><tr>
          <td>
            <p>date</p>
          </td>
          <td>
            <p> </p>
          </td>
          <td>
            <p>与 time 相同</p>
          </td>
        </tr><tr>
          <td>
            <p>datetime2</p>
          </td>
          <td>
            <p> </p>
          </td>
          <td>
            <p>与 time 相同</p>
          </td>
        </tr><tr>
          <td>
            <p>datetimeoffset</p>
          </td>
          <td>
            <p> </p>
          </td>
          <td>
            <p>与 time 相同</p>
          </td>
        </tr></table>
      <p xmlns="">BUFFER_LENGTH 列具有以下更改：</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              
                SQL Server 数据类型
            </th>
            <th>
              返回 JDBC Driver 2.0 中的类型 
            </th>
            <th>
              返回 JDBC Driver 3.0 中的类型 
            </th>
          </tr><tr>
          <td>
            <p>大于 8 kB 的用户定义类型</p>
          </td>
          <td>
          </td>
          <td>
            <p>2147483647</p>
          </td>
        </tr></table>
      <p xmlns="">TYPE_NAME 列具有以下更改：</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              
                SQL Server 数据类型
            </th>
            <th>
              返回 JDBC Driver 2.0 中的类型 
            </th>
            <th>
              返回 JDBC Driver 3.0 中的类型 
            </th>
          </tr><tr>
          <td>
            <p>varchar(max)</p>
          </td>
          <td>
            <p>text</p>
          </td>
          <td>
            <p>varchar</p>
          </td>
        </tr><tr>
          <td>
            <p>varbinary(max)</p>
          </td>
          <td>
            <p>image</p>
          </td>
          <td>
            <p>varbinary</p>
          </td>
        </tr></table>
      <p xmlns="">DECIMAL_DIGITS 列具有以下更改：</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              
                SQL Server 类型
            </th>
            <th>
              JDBC Driver 2.0
            </th>
            <th>
              JDBC Driver 3.0
            </th>
          </tr><tr>
          <td>
            <p>time</p>
          </td>
          <td>
            <p>null</p>
          </td>
          <td>
            <p>7（或指定的较小值）</p>
          </td>
        </tr><tr>
          <td>
            <p>date</p>
          </td>
          <td>
            <p>null</p>
          </td>
          <td>
            <p>null</p>
          </td>
        </tr><tr>
          <td>
            <p>datetime2</p>
          </td>
          <td>
            <p>null</p>
          </td>
          <td>
            <p>7（或指定的较小值）</p>
          </td>
        </tr><tr>
          <td>
            <p>datetimeoffset</p>
          </td>
          <td>
            <p>null</p>
          </td>
          <td>
            <p>7（或指定的较小值）</p>
          </td>
        </tr></table>
      <p xmlns="">SQL_DATA_TYPE 列具有以下更改：</p>
      <table width="100%" cellspacing="0" cellpadding="0" border="1" style="background-color: #CCCCCC;" xmlns=""><tr>
            <th>
              
                SQL Server 数据类型
            </th>
            <th>
              
                JDBC Driver 2.0 中的 SQL Server 2008 数据值
            </th>
            <th>
              
                JDBC Driver 3.0 中的 SQL Server 2008 数据值
            </th>
          </tr><tr>
          <td>
            <p>varchar(max)</p>
          </td>
          <td>
            <p>-10</p>
          </td>
          <td>
            <p>-9</p>
          </td>
        </tr><tr>
          <td>
            <p>nvarchar(max)</p>
          </td>
          <td>
            <p>-1</p>
          </td>
          <td>
            <p>-9</p>
          </td>
        </tr><tr>
          <td>
            <p>xml</p>
          </td>
          <td>
            <p>-10</p>
          </td>
          <td>
            <p>-152</p>
          </td>
        </tr><tr>
          <td>
            <p>小于或等于 8 kB 的用户定义类型</p>
          </td>
          <td>
            <p>-3</p>
          </td>
          <td>
            <p>-151</p>
          </td>
        </tr><tr>
          <td>
            <p>大于 8 kB 的用户定义类型</p>
          </td>
          <td>
            <p>在 JDBC Driver 2.0 中不可用</p>
          </td>
          <td>
            <p>-151</p>
          </td>
        </tr><tr>
          <td>
            <p>geography</p>
          </td>
          <td>
            <p>-4</p>
          </td>
          <td>
            <p>-151</p>
          </td>
        </tr><tr>
          <td>
            <p>geometry</p>
          </td>
          <td>
            <p>-4</p>
          </td>
          <td>
            <p>-151</p>
          </td>
        </tr><tr>
          <td>
            <p>hierarchyid</p>
          </td>
          <td>
            <p>-4</p>
          </td>
          <td>
            <p>-151</p>
          </td>
        </tr><tr>
          <td>
            <p>time</p>
          </td>
          <td>
            <p>-9</p>
          </td>
          <td>
            <p>92</p>
          </td>
        </tr><tr>
          <td>
            <p>date</p>
          </td>
          <td>
            <p>-9</p>
          </td>
          <td>
            <p>91</p>
          </td>
        </tr><tr>
          <td>
            <p>datetime2</p>
          </td>
          <td>
            <p>-9</p>
          </td>
          <td>
            <p>93</p>
          </td>
        </tr><tr>
          <td>
            <p>datetimeoffset</p>
          </td>
          <td>
            <p>-9</p>
          </td>
          <td>
            <p>-155</p>
          </td>
        </tr></table>
    </content>
  </div><h1 class="heading">示例</h1><div id="codeExampleSection" class="section" name="collapseableSection">
    <description xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">
      <content>
        <p xmlns="">下例演示了如何使用 <b>getColumns</b> 方法返回 SQL Server 2005 AdventureWorks 示例数据库中的 Person.Contact 表的 FirstName 列的信息。</p>
      </content>
    </description>
    <div class="sampleCode"><span codeLanguage="other"><pre>public static void executeGetColumns(Connection con) {
   try {
      DatabaseMetaData dbmd = con.getMetaData();
      ResultSet rs = dbmd.getColumns("AdventureWorks", "Person", "Contact", "FirstName");
      ResultSetMetaData rsmd = rs.getMetaData();

      // Display the result set data.
      int cols = rsmd.getColumnCount();
      while(rs.next()) {
         for (int i = 1; i &lt;= cols; i++) {
            System.out.println(rs.getString(i));
         }
      }
      rs.close();
   } 

   catch (Exception e) {
      e.printStackTrace();
   }
}</pre></span></div>
  </div><span id="seeAlsoSpan"><h1 class="heading">请参阅</h1></span><div id="seeAlsoSection" class="section" name="collapseableSection"><a href="8b8049d0-8c6d-4476-866b-098709f37eec.htm">SQLServerDatabaseMetaData 类</a><br /><a href="772de447-c922-4b85-8e10-5f0d9277966c.htm">SQLServerDatabaseMetaData 方法</a><br /><a href="327ba0bc-438a-494c-b119-1cd4a096bb58.htm">SQLServerDatabaseMetaData 成员</a><br /><br /></div><!--[if gte IE 5]>
			<tool:tip element="seeAlsoToolTip" avoidmouse="false"/><tool:tip element="languageFilterToolTip" avoidmouse="false"/><tool:tip element="roleInfoSpan" avoidmouse="false"/>
		<![endif]-->
      <div id="footer" class="section">
        
		<hr />
		
		<span id="fb" class="feedbackcss">
			
			
		</span>
		
		<a href="9bad553b-9e70-4696-8499-2e35f772a1e0.htm">
			
			© 2010 Microsoft Corporation。保留所有权利。
		</a>
 	
	
      </div>
    </div>
  </body>
</html>